#ifndef _H_OBJECT
#define _H_OBJECT
#include "heads.hpp"
#include "geometry.hpp"
#include "optics.hpp"
namespace chen {
class Object {
public:
    const Transform * w2o;
    inline Object (const Transform *  ww2o): w2o(ww2o) {}
    // This function returns the name of the object
    // Also used to make the Object class to be with
    // a virtual funciton table pointer. That avoids many unwanted
    // bugs when converting between pointers to its instances and
    // instances of its child classes.
    inline virtual std::string nameit () {return "Default Object";}
};

}
#endif
